<?php

require_once 'Utils.php';

class TaskController extends Utils {

    public function init() {
        /* Initialize action controller here */
    }

    public function indexAction() {
        // action body
        $idzadania = $this->getRequest()->getParam('id');

        $this->view->id = $idzadania;

        $zadanie = $this->pobierzZadanie($idzadania);
        foreach ($zadanie as $z) {
            $this->view->nazwa = $z->nazwa_zadania;

            $projekt = $this->pobierzProjekty($z->idprojekty);
            foreach ($projekt as $p) {
                $this->view->projekt = $p->nazwa_projektu;

                $kiero = $this->pobierzUsera($p->kierownik);
                foreach ($kiero as $k) {
                    $this->view->kieroI = $k->imie;
                    $this->view->kieroN = $k->nazwisko;
                }
            }

            $user = $this->pobierzUsera($z->iduzytkownicy);
            foreach ($user as $u) {
                $this->view->userI = $u->imie;
                $this->view->userN = $u->nazwisko;
            }

            $this->view->dataUtw = date('d-m-Y', strtotime($z->data_utworzenia));
            $this->view->dataZak = date('d-m-Y', strtotime($z->czas_szacowany));

            if ($z->status == 1) {
                $this->view->status = 'Otwarte';
            } else if ($z->status == 2) {
                $this->view->status = 'Zamknięte';
            }

            $this->view->opis = $z->opis;

            $komenty = $this->pobierzKomentarze($idzadania);
            $komentarze = array();
            $i = 0;
            foreach ($komenty as $k) {
                $komentarze[$i]['tresc'] = $k->tresc;
                $komentarze[$i]['data'] = date('d-m-Y', strtotime($k->data));
                $user = $this->pobierzUsera($k->iduzytkownicy);
                foreach ($user as $u) {
                    $komentarze[$i]['user'] = $u->imie . ' ' . $u->nazwisko;
                }
                $i++;
            }
            $this->view->komenty = $komentarze;

            $hist = $this->pobierzHistorie($idzadania);
            $historia = array();
            $i = 0;
            foreach ($hist as $h) {
                $historia[$i]['data'] = date('d-m-Y', strtotime($h->data));
                $historia[$i]['status'] = $h->idstatusy;
                $user1 = $this->pobierzUsera($h->iduzytkownicy);
                foreach ($user1 as $u) {
                    $historia[$i]['user1'] = $u->imie . ' ' . $u->nazwisko;
                }
                if ($h->iduzytkownicy2 != NULL) {
                    $user2 = $this->pobierzUsera($h->iduzytkownicy2);
                    foreach ($user2 as $u) {
                        $historia[$i]['user2'] = $u->imie . ' ' . $u->nazwisko;
                    }
                }
                $i++;
            }
            $this->view->historia = $historia;
        }
    }

    public function dodajProjektAction() {

        $this->view->akcja = 'dodaj';
        $this->view->kiero = $this->pobierzKierownikow();

        if ($this->getRequest()->isPost()) {
            $nazwa = $this->getRequest()->getParam('nazwa');
            $kiero = $this->getRequest()->getParam('kiero');

            $mdl = new Application_Model_Projekty();
            $dane = array(
                'nazwa_projektu' => $nazwa,
                'kierownik' => $kiero
            );
            $mdl->insert($dane);

            $this->_redirect('/index');
        }
    }

    public function edytujProjektAction() {

        $this->view->akcja = 'edytuj';
        $this->view->kiero = $this->pobierzKierownikow();
        $idprojekty = $this->getRequest()->getParam('id');

        $projekt = $this->pobierzProjekty($idprojekty);

        foreach ($projekt as $p) {
            $this->view->nazwa = $p->nazwa_projektu;
            $this->view->kieroAktual = $p->kierownik;
        }

        if ($this->getRequest()->isPost()) {
            $nazwa = $this->getRequest()->getParam('nazwa');
            $kiero = $this->getRequest()->getParam('kiero');

            $mdl = new Application_Model_Projekty();
            $dane = array(
                'nazwa_projektu' => $nazwa,
                'kierownik' => $kiero
            );

            $mdl->update($dane, 'idprojekty = ' . $idprojekty);

            $this->_redirect('/task/projekt/id/' . $idprojekty);
        }
    }

    public function dodajTaskAction() {

        $this->view->akcja = 'dodaj';
        $users1 = $this->pobierzKierownikow();
        $users2 = $this->pobierzUserow();
        foreach ($users1 as $u) {
            $users[] = $u;
        }
        foreach ($users2 as $u) {
            $users[] = $u;
        }
        $this->view->users = $users;
        $this->view->projekty = $this->pobierzWszystkieProjekty();

        if ($this->getRequest()->isPost()) {
            $nazwa = $this->getRequest()->getParam('nazwa');
            $projekt = $this->getRequest()->getParam('projekt');
            $user = $this->getRequest()->getParam('user');
            $koniec = $this->getRequest()->getParam('koniec');
            $opis = $this->getRequest()->getParam('opis');
            $data = date('Y-m-d H:i:s');
            $koniec = date('Y-m-d', strtotime($koniec));


            $mdl = new Application_Model_Zadania();
            $dane = array(
                'nazwa_zadania' => $nazwa,
                'idprojekty' => $projekt,
                'iduzytkownicy' => $user,
                'data_utworzenia' => $data,
                'czas_szacowany' => $koniec,
                'opis' => $opis
            );
            $idzadania = $mdl->insert($dane);

            $sesja = new Zend_Session_Namespace('sesja');

            $mdl2 = new Application_Model_Historia();
            $dane2 = array(
                'idzadania' => $idzadania,
                'iduzytkownicy' => $sesja->zalogowany,
                'idstatusy' => 1,
                'data' => date('Y-m-d')
            );

            $mdl2->insert($dane2);
            
            $dane3 = array (
                'idzadania' => $idzadania,
                'iduzytkownicy' => $sesja->zalogowany,
                'iduzytkownicy2' => $user,
                'idstatusy' => 3,
                'data' => date('Y-m-d')
            );
            
            $mdl2->insert($dane3);

            $this->_redirect('/index');
        }
    }

    public function edytujTaskAction() {

        $this->view->akcja = 'edytuj';
        $users1 = $this->pobierzKierownikow();
        $users2 = $this->pobierzUserow();
        foreach ($users1 as $u) {
            $users[] = $u;
        }
        foreach ($users2 as $u) {
            $users[] = $u;
        }
        $this->view->users = $users;
        $this->view->projekty = $this->pobierzWszystkieProjekty();

        $idzadania = $this->getRequest()->getParam('id');

        $zadanie = $this->pobierzZadanie($idzadania);

        foreach ($zadanie as $z) {
            $this->view->nazwa = $z->nazwa_zadania;
            $this->view->data = date('d-m-Y', strtotime($z->czas_szacowany));
            $this->view->opis = $z->opis;
            $this->view->idproj = $z->idprojekty;
            $this->view->iduser = $z->iduzytkownicy;
            $this->view->status = $z->status;
        }

        if ($this->getRequest()->isPost()) {
            $nazwa = $this->getRequest()->getParam('nazwa');
            $projekt = $this->getRequest()->getParam('projekt');
            $user = $this->getRequest()->getParam('user');
            $koniec = $this->getRequest()->getParam('koniec');
            $opis = $this->getRequest()->getParam('opis');
            $status = $this->getRequest()->getParam('status');
            
            $koniec = date('Y-m-d', strtotime($koniec));

            $mdl = new Application_Model_Zadania();
            $dane = array(
                'nazwa_zadania' => $nazwa,
                'idprojekty' => $projekt,
                'iduzytkownicy' => $user,
                'czas_szacowany' => $koniec,
                'opis' => $opis,
                'status' => $status
            );

            $mdl->update($dane, 'idzadania = ' . $idzadania);
            
            $sesja = new Zend_Session_Namespace('sesja');

            if ($user != $this->view->iduser) {
                $mdl2 = new Application_Model_Historia();
                $dane2 = array(
                    'idzadania' => $idzadania,
                    'iduzytkownicy' => $sesja->zalogowany,
                    'iduzytkownicy2' => $user,
                    'idstatusy' => 3,
                    'data' => date('Y-m-d')
                );
                $mdl2->insert($dane2);
            }

            if ($status != $this->view->status) {
                $mdl2 = new Application_Model_Historia();
                $dane2 = array(
                    'idzadania' => $idzadania,
                    'iduzytkownicy' => $sesja->zalogowany,
                    'idstatusy' => $status,
                    'data' => date('Y-m-d')
                );
                $mdl2->insert($dane2);
            }
            $this->_redirect('/task/index/id/' . $idzadania);
        }
    }

    public function listaTaskowAction() {

        $projekty = $this->pobierzWszystkieProjekty();
        $this->view->projekty = $projekty;

        $zadania = $this->pobierzWszystkieZadania();
        $this->view->zadania = $zadania;
    }
    
    public function archiwumAction() {
        
        $projekty = $this->pobierzWszystkieProjekty();
        $this->view->projekty = $projekty;
        
        $zadania = $this->pobierzWszystkieZadaniaArchiwum();
        $this->view->zadania = $zadania;
    }

    public function listaProjektowAction() {

        $projekty = $this->pobierzWszystkieProjekty();

        $this->view->projekty = $projekty;
    }

    public function projektAction() {

        $idprojekty = $this->getRequest()->getParam('id');

        $projekty = $this->pobierzProjekty($idprojekty);

        $this->view->projekty = $projekty;

        $zadania = $this->pobierzZadaniaProjektu($idprojekty);

        $this->view->zadania = $zadania;

        $kiero = $this->pobierzUsera($projekty[0]->kierownik);

        $this->view->kiero = $kiero;
    }
    
    public function komentujAction() {
        
        if ($this->getRequest()->isPost()) {
            $tresc = $this->getRequest()->getParam('tresc');
            $id = $this->getRequest()->getParam('id');
            $sesja = new Zend_Session_Namespace('sesja');
            
            $mdl = new Application_Model_Komentarze();
            $data = array(
                'iduzytkownicy' => $sesja->zalogowany,
                'tresc' => $tresc,
                'data' => date('Y-m-d'),
                'idzadania' => $id
            );
            
            $mdl->insert($data);
            
            $this->_redirect('/task/index/id/' . $id);
        }
    }

}